With the growing demand for improved display technologies, new applications for three dimensional (3D) scene communication have emerged. Multiview video coding (MVC) has been used to reduce data bandwidth associated with 3D video. Recently it has been standardized jointly by the ITU-T Video Coding Experts Group (VCEG) and the ISO/IEC Moving Pictures Experts Group (MPEG) as an extension of the H.264/AVC specification, under “Annex H Multiview video coding.”
The most common use case for the 3D display system is the classic stereo system which requires two views, a base view and a dependent view. The base view makes use of temporal prediction from pictures on the same base view layer. The dependent view uses both temporal prediction from pictures of the same dependent view layer, but it uses also inter-view prediction from the base view layer. This logic can be extended further with multiple layers for the other advanced multiview systems that are capable of displaying more than stereoscopic views. In this case, each dependent view has access to image predictors on its same layer and also similar predictors from the layer(s) below it.
There are multiple macroblock (MB) coding modes supported in MVC, such as the inter modes (skip, inter16×16, inter16×8, inter8×16, inter8×8, inter8×4, inter4×8, and inter4×4), and the intra modes (intra16×16, intra8×8, and intra4×4). The popular implementations of MVC encoders use a rate distortion optimization (RDO) technique to find an efficient coding mode (among other encoder parameters). That means for each MB, an exhaustive motion-compensated prediction MVC encoder loops over all of the supported MB coding modes to calculate the rate distortion (RD) cost, and then selects the MB coding mode that has the minimum RD cost as the preferred prediction mode for the selected MB. This exhaustive process is very time consuming, and accelerating the lengthy MVC encoding process would be beneficial. Such an acceleration would benefit, for example, systems with limited processing power, or could help in handling multiple encoding jobs while performing the MVC encoding, such as performing multiple stream encoding.